Ensure proper ID register is checked for feature detection
authorDimitris Papastamos <[email protected]>
Wed, 27 Feb 2019 11:46:48 +0000 (11:46 +0000)
committerDimitris Papastamos <[email protected]>
Mon, 4 Mar 2019 13:12:17 +0000 (13:12 +0000)
SSBS support is determined by checking ID_AA64PFR1_EL1 and not
ID_AA64PFR0_EL1.

Fixes ARM-Software/tf-issues#679

Change-Id: I8ecba13b850995ec6a6ede3c2a1e02e69a3a95db
Signed-off-by: Dimitris Papastamos <[email protected]>
include/arch/aarch64/arch_helpers.h
services/arm_arch_svc/arm_arch_svc_setup.c

index 836d61ef25cb6f75436ec22ac8162f28d6025335..2fce6686b1479d861ffb215796c6a35ffd27c1f2 100644 (file)
@@ -208,6 +208,7 @@ DEFINE_SYSREG_RW_FUNCS(par_el1)
 DEFINE_SYSREG_READ_FUNC(id_pfr1_el1)
 DEFINE_SYSREG_READ_FUNC(id_aa64isar1_el1)
 DEFINE_SYSREG_READ_FUNC(id_aa64pfr0_el1)
+DEFINE_SYSREG_READ_FUNC(id_aa64pfr1_el1)
 DEFINE_SYSREG_READ_FUNC(id_aa64dfr0_el1)
 DEFINE_SYSREG_READ_FUNC(id_afr0_el1)
 DEFINE_SYSREG_READ_FUNC(CurrentEl)
index dfbe02cd3c8b21811ffd80bfb39c2f7f6da9cc2c..1fc7827b4d8d07bf7cc1348be7e1179a09b96e98 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -41,7 +41,7 @@ static int32_t smccc_arch_features(u_register_t arg)
                 * PE implements architectural Speculation Store Bypass Safe
                 * (SSBS) feature.
                 */
-               ssbs = (read_id_aa64pfr0_el1() >> ID_AA64PFR1_EL1_SSBS_SHIFT) &
+               ssbs = (read_id_aa64pfr1_el1() >> ID_AA64PFR1_EL1_SSBS_SHIFT) &
                        ID_AA64PFR1_EL1_SSBS_MASK;
 
                /*